import java.util.Arrays;

class Seqlist{
    private int []elem;
    private int usedSize;
    private static final int Length=5;
    public Seqlist(){
        this.elem= new int[Length];
    }
    //打印顺序表
    public void display(){
        for (int i = 0;i<this.usedSize;i++){
            System.out.print(this.elem[i]+" ");
        }
        System.out.println();
    }
    //新增元素默认在有效数组末尾新增
    public void add(int n){
        if(isFull()){
            elem = Arrays.copyOf(elem,2*elem.length);
            //数组满了则需要扩容
        }
        this.elem[usedSize]=n;
        usedSize++;
    }
    //判断数组是否满了
    public boolean isFull(){
        return usedSize==elem.length;
    }
    //判定是否包含某个元素
    public boolean contains(int n){
        for (int i = 0; i <this.usedSize ; i++) {
            if (this.elem[i]==n){
                return true;
            }
        }
        return false;
    };
    //查找某个元素对应的位置 下标
    public int indexOf(int n){
        for (int i = 0; i <this.usedSize ; i++) {
            if(this.elem[i]==n){
                return i;
            }
        }
        return -1;
    };
    //获取pos位置的元素
    public int get(int pos){
        if(pos>=usedSize||pos<0){
            throw new PosOutBoundException("get获取数据时，位置不合法");
        }
        return elem[pos];
    }
    //在pos位置插入元素
    public void add(int pos,int data){
        if(isFull()){
            elem=Arrays.copyOf(elem,2*elem.length);
        }
        if(pos<0||pos>usedSize){
            throw new PosOutBoundException("add时选取位置不合法");
        }
        //若往中间插入数据时需要将原有数据往后挪
        for (int i =this.usedSize-1; i >=pos ; i--) {
            this.elem[i+1]=this.elem[i];
        }
        //存数据
        this.elem[pos]=data;
        usedSize++;

    }
    public void remove(int toRemove){
        if(this.usedSize==0){
            System.out.println("数组为空");
            return;
        }
        int n=-1;
        for (int i = 0; i <this.usedSize ; i++) {
            if(this.elem[i]==toRemove){
                n=i;
                break;
            }
        }
        if(n==-1){
            System.out.println("没有你要删除的数据");
            return;
        }
        for (int j = n; j <this.usedSize-1 ; j++) {
            this.elem[j]=this.elem[j+1];
        }
        this.usedSize--;
        //如果数组成员为引用类型  还需 elem[usedSize]=null;
    }
    //清空顺序表
    public void clear(){
        this.usedSize=0;
        /*for (int i =0;i<usedSize;i++){
          this.elem[i]=null;
        }
        //引用类型时需全部置空
         */
    }



}
public class Arraylist {
    public static void main(String[] args) {
        Seqlist seqlist = new Seqlist();
        seqlist.add(1);
        seqlist.add(2);
        seqlist.add(3);
        seqlist.add(4);
        seqlist.add(5);
        seqlist.add(6);
        seqlist.add(3,6);
        seqlist.remove(2);
        seqlist.display();


    }
}
